Dear all , I have a function , and I need to use this function to deal with char and char[] , is this the idea of template ? and if so , how can I distinguish if the input is char or char[] ?
thanks
Dear all , I have a function , and I need to use this function to deal with char and char[] , is this the idea of template ? and if so , how can I distinguish if the input is char or char[] ?
thanks
Last edited by GSalah; 11-15-2006 at 02:49 AM.
Just so you know, templates are a rather different kind of animal.Code:void foo(int a) {} void foo(double a) {} //correct, the two foo()s are different in argument type void foo(char a) {} //still correct void foo(char *a) {} //acceptable void foo(my_class a) {} //any type will do int foo(my_class a) {} //error, return types don't count
Code:#include <stdio.h> void J(char*a){int f,i=0,c='1';for(;a[i]!='0';++i)if(i==81){ puts(a);return;}for(;c<='9';++c){for(f=0;f<9;++f)if(a[i-i%27+i%9 /3*3+f/3*9+f%3]==c||a[i%9+f*9]==c||a[i-i%9+f]==c)goto e;a[i]=c;J(a);a[i] ='0';e:;}}int main(int c,char**v){int t=0;if(c>1){for(;v[1][ t];++t);if(t==81){J(v[1]);return 0;}}puts("sudoku [0-9]{81}");return 1;}
It sounds like you're describing a need for function overloading.
Code:#include <stdio.h> void process (char c) { printf ("Handling a char: %c\n", c); } void process (char c[]) { printf ("Handling an array: %s\n", c); } int main (void) { char letter='A'; char name[] = "James"; process(letter); process(name); return 0; }
Callou collei we'll code the way
Of prime numbers and pings!